# 带着二哈去旅行丶:ZZQ
# 生成时间：2021/7/28 16:56
print('----------------------类')
'''
class Student:      # Student为类的名称，由一个或者多个单词组成，每个单词首字母大写，其余小写
    pass
print(id(Student))
print(type(Student))
print(Student)
'''

'''
class Student:  # 在类里面定义的叫方法，在类外面定义的叫函数
    # 类属性
    native_pace = '吉林'  # 直接写在类里的变量称为--类属性

    def __init__(self, name, age):  # 初始化方法
        self.name = name  # self.name称为实体属性，进行了一个赋值操作，将局部变量的那么的值给了实体属性
        self.age = age

    # 实例方法：
    def eat(self):
        print('学生在吃饭...')

    # 静态方法：
    @staticmethod
    def method():
        print('我使用了staticmethod进行修饰，所以我是静态方法')

    # 类方法
    @classmethod
    def cm(cls):
        print('我是类方法，因为我用了classmethod修饰')


# 创建Student类的对象
stu1 = Student('张三', 20)  # 实例对象
stu1.eat()  # 调用方法1
print(stu1.name)  # 实例属性
print(stu1.age)
print('------------')
Student.eat(stu1)  # 调用方法2类
print('--------------')
# 类属性的使用方式
print(Student.native_pace)
stu2 = Student('张三', 20)
stu3 = Student('李四', 30)
print(stu2.native_pace)
print(stu3.native_pace)
Student.native_pace = '天津'  # 类属性 共享
print(stu2.native_pace)
print(stu3.native_pace)
print('--------------------类方法使用')
Student.cm()  # 类方法调用
Student.method()  # 静态方法调用
# 动态绑定性别
stu1.gender = '女'  # 为stu1动态绑定性别属性
print(stu1.name, stu1.age, stu1.gender)


# 动态绑定方法
def show():  # 定义在之外的，称为函数
    print('定义在类之外，我是一个函数')


stu1 = Student('Jack', 20)
stu1.show = show
stu1.show()
'''